Skill

স্প্রিং বুট ক্লায়েন্ট (Spring Boot Client)

Java Technologies
104
104

স্প্রিং বুট ক্লায়েন্ট সাধারণত Spring Boot অ্যাপ্লিকেশনের মধ্যে একটি ক্লায়েন্ট সিস্টেম বোঝাতে ব্যবহৃত হয়, যা অন্য একটি সার্ভার বা মাইক্রোসার্ভিসের সাথে যোগাযোগ করে। Spring Boot ব্যবহার করে ক্লায়েন্ট সার্ভার মডেল তৈরি করা যায়, যেখানে Spring Boot Client মূলত API কল, ডেটা রিকোয়েস্ট বা সার্ভার থেকে তথ্য সংগ্রহের কাজ করে। Spring Boot এর বিভিন্ন টুলস এবং ফ্রেমওয়ার্ক ব্যবহার করে সহজে ক্লায়েন্ট অ্যাপ্লিকেশন তৈরি করা যায়।


Spring Boot Rest Client: একটি বিস্তারিত বাংলা গাইড

Spring Boot হলো Spring Framework এর উপর ভিত্তি করে একটি স্বয়ংসম্পূর্ণ এবং সহজে ব্যবহারযোগ্য ফ্রেমওয়ার্ক, যা Java-based অ্যাপ্লিকেশন ডেভেলপমেন্টকে সহজ করে তোলে। এটি মূলত RESTful web services এবং microservices ডেভেলপ করার জন্য বহুল ব্যবহৃত হয়। Spring Boot এর মাধ্যমে আপনি খুব সহজে REST APIs তৈরি এবং ব্যবহার করতে পারেন।

Spring Boot এর মাধ্যমে RESTful Client তৈরি করা হয় যেকোনো RESTful API-তে অনুরোধ পাঠানোর জন্য। এই টিউটোরিয়ালে আমরা Spring Boot RestTemplate এবং WebClient ব্যবহার করে কীভাবে REST Client তৈরি করা যায়, তা বিস্তারিতভাবে আলোচনা করব।


Spring Boot Rest Client এর জন্য দুটি প্রধান উপায়

RestTemplate: Spring Framework এর পুরোনো উপাদান, যা এখনও ব্যবহৃত হয় তবে WebClient এর দ্বারা ধীরে ধীরে প্রতিস্থাপিত হচ্ছে। RestTemplate সিঙ্ক্রোনাস API কল করার জন্য ব্যবহৃত হয়।

WebClient: এটি Spring 5 এর নতুন reactive উপাদান, যা asynchronous non-blocking API কলের জন্য ব্যবহৃত হয়। এটি Spring WebFlux এর অংশ এবং RestTemplate এর তুলনায় বেশি ফ্লেক্সিবল এবং performant।


RestTemplate ব্যবহার করে REST Client তৈরি করা

১. Spring Boot প্রকল্প তৈরি করা

প্রথমে একটি Spring Boot প্রকল্প তৈরি করতে হবে। আপনি Spring Initializr ব্যবহার করে নিচের নির্দিষ্ট ডিপেনডেন্সিগুলো সহ একটি প্রজেক্ট তৈরি করতে পারেন:

  • Spring Web
  • Spring Boot DevTools

২. RestTemplate Bean তৈরি করা

Spring Boot এ RestTemplate এর সাহায্যে RESTful APIs এ অনুরোধ পাঠানো যায়। প্রথমে আমরা একটি RestTemplate Bean তৈরি করব।

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class AppConfig {

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

৩. GET অনুরোধ পাঠানো

নিচে একটি উদাহরণ দেখানো হলো, যেখানে RestTemplate ব্যবহার করে GET অনুরোধ পাঠানো হয়েছে এবং API থেকে ডেটা গ্রহণ করা হয়েছে।

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class RestClientController {

    private final RestTemplate restTemplate;

    public RestClientController(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @GetMapping("/getUserData")
    public String getUserData() {
        String url = "https://jsonplaceholder.typicode.com/users/1";
        String response = restTemplate.getForObject(url, String.class);
        return response;
    }
}

৪. POST অনুরোধ পাঠানো

RestTemplate ব্যবহার করে POST অনুরোধ পাঠানোর উদাহরণ:

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class PostClientController {

    private final RestTemplate restTemplate;

    public PostClientController(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @PostMapping("/createUser")
    public String createUser(@RequestBody User user) {
        String url = "https://jsonplaceholder.typicode.com/users";
        String response = restTemplate.postForObject(url, user, String.class);
        return response;
    }
}

WebClient ব্যবহার করে REST Client তৈরি করা

WebClient হলো Spring WebFlux এর অংশ, যা Spring 5 থেকে পরিচিত হয়েছে। এটি non-blocking এবং asynchronous API কল করার জন্য ব্যবহৃত হয়।

১. Spring Boot প্রকল্প তৈরি করা

প্রথমে, একটি Spring Boot প্রকল্প তৈরি করতে হবে এবং Spring WebFlux ডিপেনডেন্সি অন্তর্ভুক্ত করতে হবে।

২. WebClient Bean তৈরি করা

RestTemplate এর মতোই WebClient ব্যবহার করার জন্য প্রথমে একটি WebClient Bean তৈরি করতে হবে।

 

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.client.WebClient;

@Configuration
public class WebClientConfig {

    @Bean
    public WebClient.Builder webClientBuilder() {
        return WebClient.builder();
    }
}

৩. GET অনুরোধ পাঠানো

এখানে WebClient ব্যবহার করে একটি GET অনুরোধ পাঠানোর উদাহরণ দেওয়া হলো:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;

@RestController
public class WebClientController {

    private final WebClient.Builder webClientBuilder;

    public WebClientController(WebClient.Builder webClientBuilder) {
        this.webClientBuilder = webClientBuilder;
    }

    @GetMapping("/getUserDataAsync")
    public Mono<String> getUserDataAsync() {
        return webClientBuilder.build()
                .get()
                .uri("https://jsonplaceholder.typicode.com/users/1")
                .retrieve()
                .bodyToMono(String.class);
    }
}

৪. POST অনুরোধ পাঠানো

WebClient দিয়ে POST অনুরোধ পাঠানোর উদাহরণ:

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;

@RestController
public class WebClientPostController {

    private final WebClient.Builder webClientBuilder;

    public WebClientPostController(WebClient.Builder webClientBuilder) {
        this.webClientBuilder = webClientBuilder;
    }

    @PostMapping("/createUserAsync")
    public Mono<String> createUserAsync(@RequestBody User user) {
        return webClientBuilder.build()
                .post()
                .uri("https://jsonplaceholder.typicode.com/users")
                .bodyValue(user)
                .retrieve()
                .bodyToMono(String.class);
    }
}

RestTemplate এবং WebClient এর তুলনা

বৈশিষ্ট্যRestTemplateWebClient
ধারণাSynchronous, blocking callsAsynchronous, non-blocking calls
Performanceকম performant, ছোট প্রজেক্টের জন্য ভালোবেশি performant, বড় প্রজেক্টের জন্য ভালো
Spring VersionSpring 3.x এবং পূর্ববর্তী সংস্করণSpring 5 এবং তার পরবর্তী সংস্করণ
Future SupportDeprecated হতে যাচ্ছেSpring এর নতুন ডিফল্ট ক্লায়েন্ট

শেখার রিসোর্স

  1. Spring Official Documentation
  2. Baeldung on RestTemplate
  3. Baeldung on WebClient

উপসংহার

Spring Boot এর সাহায্যে REST Client তৈরি করা খুবই সহজ, এবং আপনি দুটি প্রধান উপায়ে এটি করতে পারেন: RestTemplate এবং WebClient। RestTemplate সিঙ্ক্রোনাস API কলিংয়ের জন্য ব্যবহৃত হয়, তবে WebClient হলো Spring এর নতুন reactive উপাদান, যা asynchronous non-blocking API কল করার জন্য বেশি উপযোগী।

স্প্রিং বুট ক্লায়েন্ট সাধারণত Spring Boot অ্যাপ্লিকেশনের মধ্যে একটি ক্লায়েন্ট সিস্টেম বোঝাতে ব্যবহৃত হয়, যা অন্য একটি সার্ভার বা মাইক্রোসার্ভিসের সাথে যোগাযোগ করে। Spring Boot ব্যবহার করে ক্লায়েন্ট সার্ভার মডেল তৈরি করা যায়, যেখানে Spring Boot Client মূলত API কল, ডেটা রিকোয়েস্ট বা সার্ভার থেকে তথ্য সংগ্রহের কাজ করে। Spring Boot এর বিভিন্ন টুলস এবং ফ্রেমওয়ার্ক ব্যবহার করে সহজে ক্লায়েন্ট অ্যাপ্লিকেশন তৈরি করা যায়।


Spring Boot Rest Client: একটি বিস্তারিত বাংলা গাইড

Spring Boot হলো Spring Framework এর উপর ভিত্তি করে একটি স্বয়ংসম্পূর্ণ এবং সহজে ব্যবহারযোগ্য ফ্রেমওয়ার্ক, যা Java-based অ্যাপ্লিকেশন ডেভেলপমেন্টকে সহজ করে তোলে। এটি মূলত RESTful web services এবং microservices ডেভেলপ করার জন্য বহুল ব্যবহৃত হয়। Spring Boot এর মাধ্যমে আপনি খুব সহজে REST APIs তৈরি এবং ব্যবহার করতে পারেন।

Spring Boot এর মাধ্যমে RESTful Client তৈরি করা হয় যেকোনো RESTful API-তে অনুরোধ পাঠানোর জন্য। এই টিউটোরিয়ালে আমরা Spring Boot RestTemplate এবং WebClient ব্যবহার করে কীভাবে REST Client তৈরি করা যায়, তা বিস্তারিতভাবে আলোচনা করব।


Spring Boot Rest Client এর জন্য দুটি প্রধান উপায়

RestTemplate: Spring Framework এর পুরোনো উপাদান, যা এখনও ব্যবহৃত হয় তবে WebClient এর দ্বারা ধীরে ধীরে প্রতিস্থাপিত হচ্ছে। RestTemplate সিঙ্ক্রোনাস API কল করার জন্য ব্যবহৃত হয়।

WebClient: এটি Spring 5 এর নতুন reactive উপাদান, যা asynchronous non-blocking API কলের জন্য ব্যবহৃত হয়। এটি Spring WebFlux এর অংশ এবং RestTemplate এর তুলনায় বেশি ফ্লেক্সিবল এবং performant।


RestTemplate ব্যবহার করে REST Client তৈরি করা

১. Spring Boot প্রকল্প তৈরি করা

প্রথমে একটি Spring Boot প্রকল্প তৈরি করতে হবে। আপনি Spring Initializr ব্যবহার করে নিচের নির্দিষ্ট ডিপেনডেন্সিগুলো সহ একটি প্রজেক্ট তৈরি করতে পারেন:

  • Spring Web
  • Spring Boot DevTools

২. RestTemplate Bean তৈরি করা

Spring Boot এ RestTemplate এর সাহায্যে RESTful APIs এ অনুরোধ পাঠানো যায়। প্রথমে আমরা একটি RestTemplate Bean তৈরি করব।

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class AppConfig {

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

৩. GET অনুরোধ পাঠানো

নিচে একটি উদাহরণ দেখানো হলো, যেখানে RestTemplate ব্যবহার করে GET অনুরোধ পাঠানো হয়েছে এবং API থেকে ডেটা গ্রহণ করা হয়েছে।

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class RestClientController {

    private final RestTemplate restTemplate;

    public RestClientController(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @GetMapping("/getUserData")
    public String getUserData() {
        String url = "https://jsonplaceholder.typicode.com/users/1";
        String response = restTemplate.getForObject(url, String.class);
        return response;
    }
}

৪. POST অনুরোধ পাঠানো

RestTemplate ব্যবহার করে POST অনুরোধ পাঠানোর উদাহরণ:

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class PostClientController {

    private final RestTemplate restTemplate;

    public PostClientController(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @PostMapping("/createUser")
    public String createUser(@RequestBody User user) {
        String url = "https://jsonplaceholder.typicode.com/users";
        String response = restTemplate.postForObject(url, user, String.class);
        return response;
    }
}

WebClient ব্যবহার করে REST Client তৈরি করা

WebClient হলো Spring WebFlux এর অংশ, যা Spring 5 থেকে পরিচিত হয়েছে। এটি non-blocking এবং asynchronous API কল করার জন্য ব্যবহৃত হয়।

১. Spring Boot প্রকল্প তৈরি করা

প্রথমে, একটি Spring Boot প্রকল্প তৈরি করতে হবে এবং Spring WebFlux ডিপেনডেন্সি অন্তর্ভুক্ত করতে হবে।

২. WebClient Bean তৈরি করা

RestTemplate এর মতোই WebClient ব্যবহার করার জন্য প্রথমে একটি WebClient Bean তৈরি করতে হবে।

 

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.client.WebClient;

@Configuration
public class WebClientConfig {

    @Bean
    public WebClient.Builder webClientBuilder() {
        return WebClient.builder();
    }
}

৩. GET অনুরোধ পাঠানো

এখানে WebClient ব্যবহার করে একটি GET অনুরোধ পাঠানোর উদাহরণ দেওয়া হলো:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;

@RestController
public class WebClientController {

    private final WebClient.Builder webClientBuilder;

    public WebClientController(WebClient.Builder webClientBuilder) {
        this.webClientBuilder = webClientBuilder;
    }

    @GetMapping("/getUserDataAsync")
    public Mono<String> getUserDataAsync() {
        return webClientBuilder.build()
                .get()
                .uri("https://jsonplaceholder.typicode.com/users/1")
                .retrieve()
                .bodyToMono(String.class);
    }
}

৪. POST অনুরোধ পাঠানো

WebClient দিয়ে POST অনুরোধ পাঠানোর উদাহরণ:

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;

@RestController
public class WebClientPostController {

    private final WebClient.Builder webClientBuilder;

    public WebClientPostController(WebClient.Builder webClientBuilder) {
        this.webClientBuilder = webClientBuilder;
    }

    @PostMapping("/createUserAsync")
    public Mono<String> createUserAsync(@RequestBody User user) {
        return webClientBuilder.build()
                .post()
                .uri("https://jsonplaceholder.typicode.com/users")
                .bodyValue(user)
                .retrieve()
                .bodyToMono(String.class);
    }
}

RestTemplate এবং WebClient এর তুলনা

বৈশিষ্ট্যRestTemplateWebClient
ধারণাSynchronous, blocking callsAsynchronous, non-blocking calls
Performanceকম performant, ছোট প্রজেক্টের জন্য ভালোবেশি performant, বড় প্রজেক্টের জন্য ভালো
Spring VersionSpring 3.x এবং পূর্ববর্তী সংস্করণSpring 5 এবং তার পরবর্তী সংস্করণ
Future SupportDeprecated হতে যাচ্ছেSpring এর নতুন ডিফল্ট ক্লায়েন্ট

শেখার রিসোর্স

  1. Spring Official Documentation
  2. Baeldung on RestTemplate
  3. Baeldung on WebClient

উপসংহার

Spring Boot এর সাহায্যে REST Client তৈরি করা খুবই সহজ, এবং আপনি দুটি প্রধান উপায়ে এটি করতে পারেন: RestTemplate এবং WebClient। RestTemplate সিঙ্ক্রোনাস API কলিংয়ের জন্য ব্যবহৃত হয়, তবে WebClient হলো Spring এর নতুন reactive উপাদান, যা asynchronous non-blocking API কল করার জন্য বেশি উপযোগী।

টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion